package ua.lviv.franko.solvers;

public interface IElement1D {
	/**
	 * 
	 * @param x
	 * @param vals
	 * @return
	 */
	public double calculate(double x, double[] vals);

	/**
	 * generate all elements of equation
	 */
	public void generateAll(); //

	/**
	 * 
	 * @return vector from right side
	 */
	public double[] generateFe();

	/**
	 * 
	 * @return matrix from element with second derivaty
	 */
	public double[][] generatePe();

	/**
	 * 
	 * @return matrix from element without derivaty
	 */
	public double[][] generateQe();

	/**
	 * 
	 * @return matrix from element with first derivaty
	 */
	public double[][] generateWe();

	/**
	 * 
	 * @return data generated by generate all;
	 */
	public ElementMatrix getAll();

	public int lastNumber();

}
